package com.sz.biz.logistics.ord.dto;

import com.sz.biz.logistics.ord.entity.OrdServiceAssign;

import java.math.BigDecimal;
import java.util.*;

/**
 * Function: //TODO ADD FUNCTION. <br>
 * Date: 2017年10月20日 9:14 <br>
 * Author: wentao.chang
 */
public class OrdServiceAssignCalcDto {

    private int custId;
    /**
     * 客户的评价等级
     */
    private int cusLevel;


    private String orderNo;

    private Date orderDate;

    private String cargoType;

    private BigDecimal cusWeight;

    private String weightUnit;

    private String startAddressStr;

    private int startPort;
    //起始港口 --在试算时使用
    private List<Integer> startPorts;

    /**
     * 收件人地址的组装信息
     */
    private String endAddressStr;

    private int endPort;
    //目的港口 --在试算时使用
    private List<Integer> endPorts;

    private String receiveAddressStr;

    private BigDecimal announcePrice = BigDecimal.ZERO;

    private Map<String, Integer> classMap = new HashMap<>(16);

    /**
     * 发件人的国家
     */
    protected String fromCountry;

    /**
     * 发件人的省份
     */
    protected String fromProvince;

    /**
     * 发件人的城市
     */
    protected String fromCity;
    /**
     * 发件人的地区
     */
    protected String fromArea;

    /**
     * 发件人的街道
     */
    protected String fromStreet;

    /**
     * 发件人的邮编
     */
    protected String fromPostcode;

    /**
     * 收件人的国家
     */
    protected String toCountry;

    /**
     * 收件人的省份
     */
    protected String toProvince;

    /**
     * 收件人的城市
     */
    protected String toCity;

    /**
     * 收件人的城市
     */
    protected String toArea;

    /**
     * 收件人的街道
     */
    protected String toStreet;

    /**
     * 收件人的邮编
     */
    protected String toPostcode;

    /**
     * 已选的可选服务
     */
    private List<String> optionServiceTypes = new ArrayList<>();

    private boolean isOk = true;

    private OrdServiceAssign osa = new OrdServiceAssign();

    private StringBuffer calcMsg = new StringBuffer();

    /**
     * 由于订单已在进行中，需要跳过的服务类型
     */
    private List<String> skippedServiceTypes = new ArrayList<>();

    public StringBuffer getCalcMsg() {
        return calcMsg;
    }

    public void setCalcMsg(StringBuffer calcMsg) {
        this.calcMsg = calcMsg;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getCargoType() {
        return cargoType;
    }

    public void setCargoType(String cargoType) {
        this.cargoType = cargoType;
    }

    public BigDecimal getCusWeight() {
        return cusWeight;
    }

    public void setCusWeight(BigDecimal cusWeight) {
        this.cusWeight = cusWeight;
    }

    public String getWeightUnit() {
        return weightUnit;
    }

    public void setWeightUnit(String weightUnit) {
        this.weightUnit = weightUnit;
    }

    public String getStartAddressStr() {
        return startAddressStr;
    }

    public void setStartAddressStr(String startAddressStr) {
        this.startAddressStr = startAddressStr;
    }

    public String getEndAddressStr() {
        return endAddressStr;
    }

    public void setEndAddressStr(String endAddressStr) {
        this.endAddressStr = endAddressStr;
    }

    public String getReceiveAddressStr() {
        return receiveAddressStr;
    }

    public void setReceiveAddressStr(String receiveAddressStr) {
        this.receiveAddressStr = receiveAddressStr;
    }

    public int getStartPort() {
        return startPort;
    }

    public void setStartPort(int startPort) {
        this.startPort = startPort;
    }

    public int getEndPort() {
        return endPort;
    }

    public void setEndPort(int endPort) {
        this.endPort = endPort;
    }

    public int getCustId() {
        return custId;
    }

    public void setCustId(int custId) {
        this.custId = custId;
    }

    /**
     * 客户的评价等级
     */
    public int getCusLevel() {
        return cusLevel;
    }

    /**
     * 客户的评价等级
     */
    public void setCusLevel(int cusLevel) {
        this.cusLevel = cusLevel;
    }

    public BigDecimal getAnnouncePrice() {
        return announcePrice;
    }

    public void setAnnouncePrice(BigDecimal announcePrice) {
        this.announcePrice = announcePrice;
    }

    public OrdServiceAssign getOsa() {
        return osa;
    }

    public void setOsa(OrdServiceAssign osa) {
        this.osa = osa;
    }


    public String getFromCountry() {
        return fromCountry;
    }

    public void setFromCountry(String fromCountry) {
        this.fromCountry = fromCountry;
    }

    public String getFromProvince() {
        return fromProvince;
    }

    public void setFromProvince(String fromProvince) {
        this.fromProvince = fromProvince;
    }

    public String getFromCity() {
        return fromCity;
    }

    public void setFromCity(String fromCity) {
        this.fromCity = fromCity;
    }

    public String getFromArea() {
        return fromArea;
    }

    public void setFromArea(String fromArea) {
        this.fromArea = fromArea;
    }

    public String getFromStreet() {
        return fromStreet;
    }

    public void setFromStreet(String fromStreet) {
        this.fromStreet = fromStreet;
    }

    public String getFromPostcode() {
        return fromPostcode;
    }

    public void setFromPostcode(String fromPostcode) {
        this.fromPostcode = fromPostcode;
    }

    public String getToCountry() {
        return toCountry;
    }

    public void setToCountry(String toCountry) {
        this.toCountry = toCountry;
    }

    public String getToProvince() {
        return toProvince;
    }

    public void setToProvince(String toProvince) {
        this.toProvince = toProvince;
    }

    public String getToCity() {
        return toCity;
    }

    public void setToCity(String toCity) {
        this.toCity = toCity;
    }

    public String getToArea() {
        return toArea;
    }

    public void setToArea(String toArea) {
        this.toArea = toArea;
    }

    public String getToStreet() {
        return toStreet;
    }

    public void setToStreet(String toStreet) {
        this.toStreet = toStreet;
    }

    public String getToPostcode() {
        return toPostcode;
    }

    public void setToPostcode(String toPostcode) {
        this.toPostcode = toPostcode;
    }

    public List<String> getOptionServiceTypes() {
        return optionServiceTypes;
    }

    public void setOptionServiceTypes(List<String> optionServiceTypes) {
        this.optionServiceTypes = optionServiceTypes;
    }

    public Map<String, Integer> getClassMap() {
        return classMap;
    }

    public void setClassMap(Map<String, Integer> classMap) {
        this.classMap = classMap;
    }

    public boolean isOk() {
        return isOk;
    }

    public void setOk(boolean ok) {
        isOk = ok;
    }

    public Date getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }

    public List<Integer> getStartPorts() {
        return startPorts;
    }

    public void setStartPorts(List<Integer> startPorts) {
        this.startPorts = startPorts;
    }

    public List<Integer> getEndPorts() {
        return endPorts;
    }

    public void setEndPorts(List<Integer> endPorts) {
        this.endPorts = endPorts;
    }

    public List<String> getSkippedServiceTypes() {
        return skippedServiceTypes;
    }

    public void setSkippedServiceTypes(List<String> skippedServiceTypes) {
        this.skippedServiceTypes = skippedServiceTypes;
    }
}
